/**
 * Author(s): xuming.Wong <xuming.Wong@gmail.com>
 */

#ifndef __PQ_IMECHSWin_H__
#define __PQ_IMECHSWin_H__

#include "ClientPrerequisites.h"

#if PLATFORM == PLATFORM_WINDOWS
#include <CEGUI.h>
#include "I_IMECHSImpl.h"

namespace PQClient
{
	class IMECHSWin :
		public I_IMECHSImpl
	{
	public:
		bool injectChar(Ogre::RenderWindow* window, uint32 code);

	protected:
		static bool MakeWChar( unsigned char code );
		static LRESULT CALLBACK WndProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);

	protected:
		static WNDPROC _funcWndProc;
	};
}
#endif
#endif